Rich specifications for Ethereum smart contract verification

نویسندگان

چکیده

Smart contracts are programs that execute in blockchains such as Ethereum to manipulate digital assets. Since bugs smart may lead substantial financial losses, there is considerable interest formally proving their correctness. However, the specification and verification of faces challenges rarely arise other application domains. frequently interact with unverified, potentially adversarial outside code, which substantially weakens assumptions formal analyses can (soundly) make. Moreover, core functionality transfer resources; describing this concisely requires dedicated support. Current reasoning techniques do not fully address these challenges, being restricted scope or expressiveness (in particular, presence re-entrant calls), offering limited means expressing resource transfers a contract performs. In paper, we present novel methodology tailored domain contracts. Our specifications associated technique first enable: (1) sound precise unverified code arbitrary re-entrancy, (2) modular about collaborating contracts, (3) domain-specific for resources transfers, contract's behaviour intuitive concise ways excluding typical errors by default. We have implemented our approach 2vyper, an SMT-based automated tool written Vyper, demonstrated its effectiveness verifying strong correctness guarantees real-world

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Contract-Oriented Specifications

In classes developed using design-by-contract, contracts contain assertions that formalise preconditions, postconditions and invariants. To be sure that contracts are complete, they can be derived from specifications. For classes in a data structures library, equational specifications are appropriate. However, a conventional equational specification cannot usually be mapped directly to contract...

متن کامل

Tool Demonstration: FSolidM for Designing Secure Ethereum Smart Contracts

Blockchain-based distributed computing platforms enable the trusted execution of computation—defined in the form of smart contracts—without trusted agents. Smart contracts are envisioned to have a variety of applications, ranging from financial to IoT asset tracking. Unfortunately, the development of smart contracts has proven to be extremely error prone. In practice, contracts are riddled with...

متن کامل

An Approach for Validating BCL Contract Specifications

We continue the study, started in [5], on the formal relationships between a domain specific contract language (BCL) and the logic of violation (FCL) proposed in [6, 7]. We discuss the use of logical methods for the representation and analysis of business contracts. The proposed analysis is based on the notions of normal and canonical forms of contracts expressed in FCL. Finally we present a ma...

متن کامل

A survey of attacks on Ethereum smart contracts

Smart contracts are computer programs that can be correctly executed by a network of mutually distrusting nodes, without the need of an external trusted authority. Since smart contracts handle and transfer assets of considerable value, besides their correct execution it is also crucial that their implementation is secure against attacks which aim at stealing or tampering the assets. We study th...

متن کامل

Defining the Ethereum Virtual Machine for Interactive Theorem Provers

Smart contracts in Ethereum are executed by the Ethereum Virtual Machine (EVM). We defined EVM in Lem, a language that can be compiled for a few interactive theorem provers. We tested our definition against a standard test suite for Ethereum implementations. Using our definition, we proved some safety properties of Ethereum smart contracts in an interactive theorem prover Isabelle/HOL. To our k...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2021

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3485523